class Solution
{
public:
    int minimumOperations(string num)
    {
        int minOp = num.size();

        int n = num.size();

        int count = 0;
        bool flag = false;
        for (int i = n - 1; i >= 0; --i)
        {
            if (!flag)
            {
                if (num[i] == '5')
                {
                    flag = true;
                }
                else
                {
                    ++count;
                }
            }
            else
            {
                if (num[i] == '2' || num[i] == '7')
                {
                    minOp = min(minOp, count);
                    break;
                }
                else
                {
                    ++count;
                }
            }
        }

        count = 0;
        flag = false;
        for (int i = n - 1; i >= 0; --i)
        {
            if (!flag)
            {
                if (num[i] == '0')
                {
                    flag = true;
                }
                else
                {
                    ++count;
                }
            }
            else
            {
                if (num[i] == '5' || num[i] == '0')
                {
                    minOp = min(minOp, count);
                    break;
                }
                else
                {
                    ++count;
                }
            }
        }

        int nonZero = 0;
        for (int i = 0; i < n; ++i)
        {
            if (num[i] != '0')
            {
                ++nonZero;
            }
        }
        minOp = min(minOp, nonZero);
        return minOp;
    }
};